﻿#define _CRT_SECURE_NO_WARNINGS 1


////不用加减乘除做加法
////描述
////写一个函数，求两个整数之和，要求在函数体内不得使用 + 、 - 、 * 、 / 四则运算符号。
////数据范围：两个数都满足 - 10 \le n \le 1000−10≤n≤1000
////进阶：空间复杂度 O(1)O(1)，时间复杂度 O(1)O(1)
////示例1
////输入：1, 2
////复制
////返回值：3
////
////示例2
////输入：0, 0
////返回值：0
//
//int Add(int num1, int num2) {
//    while (num2)
//    {
//        int num = (num1 & num2) << 1;
//        num1 = num1 ^ num2;
//        num2 = num;
//    }
//    return num1;
//}











////找到所有数组中消失的数字
////给你一个含 n 个整数的数组 nums ，其中 nums[i] 在区间[1, n] 内。请你找出所有在[1, n] 范围内但没有出现在 nums 中的数字，并以数组的形式返回结果。
////
////示例 1：
////输入：nums = [4, 3, 2, 7, 8, 2, 3, 1]
////输出：[5, 6]
////
////示例 2：
////输入：nums = [1, 1]
////输出：[2]
//
//
//int* findDisappearedNumbers(int* nums, int numsSize, int* returnSize) {
//    int* arr = (int*)calloc(sizeof(int), numsSize);
//    *returnSize = 0;
//    for (int i = 0; i < numsSize; i++)
//        arr[nums[i] - 1]++;
//    for (int i = 0; i < numsSize; i++)
//    {
//        if (arr[i] == 0)
//            arr[(*returnSize)++] = i + 1;
//    }
//    return arr;
//}













////数对
////描述
////牛牛以前在老师那里得到了一个正整数数对(x, y), 牛牛忘记他们具体是多少了。
////但是牛牛记得老师告诉过他x和y均不大于n, 并且x除以y的余数大于等于k。
////牛牛希望你能帮他计算一共有多少个可能的数对。
////输入描述：
////输入包括两个正整数n, k(1 <= n <= 10 ^ 5, 0 <= k <= n - 1)。
////输出描述：
////对于每个测试用例, 输出一个正整数表示可能的数对数量。
////
////示例1
////输入：5 2
////输出：7
////说明：
////满足条件的数对有(2, 3), (2, 4), (2, 5), (3, 4), (3, 5), (4, 5), (5, 3)
//
//#include<stdio.h>
//int main()
//{
//    long int n = 0;
//    long int k = 0;
//    scanf("%ld %ld", &n, &k);
//    if (k == 0)
//        printf("%ld", n * n);
//    else
//    {
//        long int count = 0;
//        for (int y = k + 1; y <= n; y++)
//        {
//            count += (n / y) * (y - k);
//            long int temp = n % y;
//            if (temp >= k)
//                count += temp - k + 1;
//        }
//        printf("%ld", count);
//    }
//    return 0;
//}